package io.gitee.sfch.chunmi.code.generator.conf;

import cn.hutool.core.util.StrUtil;
import lombok.Data;

import java.util.function.Function;

/**
 * 代码生成器配置
 */
@Data
public class CodeGeneratorConf {

    /**
     * 项目根目录
     */
    private String projectRoot = System.getProperty("user.dir");

    /**
     * 前端项目根目录
     */
    private String webProjectRoot;

    /**
     * 基础包名
     * <li> daoMapper: ${basePackage}.dao.${moduleName}.mapper
     * <li> daoEntity: ${basePackage}.dao.${moduleName}.entity
     * <li> service: ${basePackage}.service.${moduleName}.${tableName}Service
     */
    private String basePackage = "io.gitee.sfch.chunmi";

    /**
     * 模块名，比如system
     */
    private String moduleName;

    /**
     * 生成后端项目代码
     */
    private boolean generateAdmin = true;

    /**
     * 生成前端项目代码
     */
    private boolean generateWeb = true;

    /**
     * 是否覆盖
     */
    private boolean overwrite = true;

    /**
     * 表名转换为实体名，默认以下划线转驼峰
     */
    private Function<String, String> entityNameMapper = k -> StrUtil.toCamelCase(k.toLowerCase());

    /**
     * 实体类型
     */
    private EntityTypeEnum entityType = EntityTypeEnum.curdEntity;
}
